package com.stark.asm.service.carrier;

import com.stark.asm.common.util.page.Result;
import com.stark.asm.domain.carrier.Carrier;
import com.stark.asm.domain.carrier.query.CarrierQuery;

/**
 * Carrier information service interface
 * @author WangYue
 *
 */
public interface CarrierService {

	/**
	 * add carrier information
	 * @param carrier   carrier value class
	 * @return Result 
	 */
	public Result addCarrier(Carrier carrier);
	
	/**
	 * update carrier information
	 * @param carrier  carrier value class
	 * @return Result 
	 */
	public Result updateCarrier(Carrier carrier);
	
	/**
	 * according to carrier id ,query carrier information.
	 * @param id  carrier id
	 * @return  Result
	 */
	public Result getCarrierById(Long id);
	
	/**
	 * according to carrier code ,query carrier information.
	 * @param carrierCode  carrier code
	 * @return Result
	 */
	public Result getCarrierByCarrierCode(String carrierCode);
	
	/**
	 * query carrier information with page
	 * @param query Query carrier value class
	 * @return Result
	 */
	public Result queryCarrierListByQueryBean(CarrierQuery carrierQuery);
	
	/**
	 * query carrier information with page
	 * @param query Query carrier value class
	 * @return Result
	 */
	public Result queryCarrierListPageByQueryBean(CarrierQuery carrierQuery, int pageIndex, int pageSize);
	
	
	/**
	 * according to carrier id,delete carrier information.
	 * @param id  carrier id
	 * @return Result .
	 */
	public Result deleteCarrierById(Long id);
	

	/**
	 * according to carrier id,delete carrier information.
	 * @param id  carrier id array
	 * @return Result .
	 */
	public Result deleteCarrierByIds(Long[] id);
	
}
